home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / clasyf.z / clasyf
Text File  |  1998-10-30  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCLLLLAAAASSSSYYYYFFFF((((3333FFFF))))                                                          CCCCLLLLAAAASSSSYYYYFFFF((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CLASYF - compute a partial factorization of a complex symmetric matrix A
  10.      using the Bunch-Kaufman diagonal pivoting method
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE CLASYF( UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, KB, LDA, LDW, N, NB
  18.  
  19.          INTEGER        IPIV( * )
  20.  
  21.          COMPLEX        A( LDA, * ), W( LDW, * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      CLASYF computes a partial factorization of a complex symmetric matrix A
  25.      using the Bunch-Kaufman diagonal pivoting method. The partial
  26.      factorization has the form:
  27.  
  28.      A  =  ( I  U12 ) ( A11  0  ) (  I    0   )  if UPLO = 'U', or:
  29.            ( 0  U22 ) (  0   D  ) ( U12' U22' )
  30.  
  31.      A  =  ( L11  0 ) ( D    0  ) ( L11' L21' )  if UPLO = 'L'
  32.            ( L21  I ) ( 0   A22 ) (  0    I   )
  33.  
  34.      where the order of D is at most NB. The actual order is returned in the
  35.      argument KB, and is either NB or NB-1, or N if N <= NB.  Note that U'
  36.      denotes the transpose of U.
  37.  
  38.      CLASYF is an auxiliary routine called by CSYTRF. It uses blocked code
  39.      (calling Level 3 BLAS) to update the submatrix A11 (if UPLO = 'U') or A22
  40.      (if UPLO = 'L').
  41.  
  42.  
  43. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  44.      UPLO    (input) CHARACTER*1
  45.              Specifies whether the upper or lower triangular part of the
  46.              symmetric matrix A is stored:
  47.              = 'U':  Upper triangular
  48.              = 'L':  Lower triangular
  49.  
  50.      N       (input) INTEGER
  51.              The order of the matrix A.  N >= 0.
  52.  
  53.      NB      (input) INTEGER
  54.              The maximum number of columns of the matrix A that should be
  55.              factored.  NB should be at least 2 to allow for 2-by-2 pivot
  56.              blocks.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCLLLLAAAASSSSYYYYFFFF((((3333FFFF))))                                                          CCCCLLLLAAAASSSSYYYYFFFF((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      KB      (output) INTEGER
  75.              The number of columns of A that were actually factored.  KB is
  76.              either NB-1 or NB, or N if N <= NB.
  77.  
  78.      A       (input/output) COMPLEX array, dimension (LDA,N)
  79.              On entry, the symmetric matrix A.  If UPLO = 'U', the leading n-
  80.              by-n upper triangular part of A contains the upper triangular
  81.              part of the matrix A, and the strictly lower triangular part of A
  82.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  83.              triangular part of A contains the lower triangular part of the
  84.              matrix A, and the strictly upper triangular part of A is not
  85.              referenced.  On exit, A contains details of the partial
  86.              factorization.
  87.  
  88.      LDA     (input) INTEGER
  89.              The leading dimension of the array A.  LDA >= max(1,N).
  90.  
  91.      IPIV    (output) INTEGER array, dimension (N)
  92.              Details of the interchanges and the block structure of D.  If
  93.              UPLO = 'U', only the last KB elements of IPIV are set; if UPLO =
  94.              'L', only the first KB elements are set.
  95.  
  96.              If IPIV(k) > 0, then rows and columns k and IPIV(k) were
  97.              interchanged and D(k,k) is a 1-by-1 diagonal block.  If UPLO =
  98.              'U' and IPIV(k) = IPIV(k-1) < 0, then rows and columns k-1 and
  99.              -IPIV(k) were interchanged and D(k-1:k,k-1:k) is a 2-by-2
  100.              diagonal block.  If UPLO = 'L' and IPIV(k) = IPIV(k+1) < 0, then
  101.              rows and columns k+1 and -IPIV(k) were interchanged and
  102.              D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
  103.  
  104.      W       (workspace) COMPLEX array, dimension (LDW,NB)
  105.  
  106.      LDW     (input) INTEGER
  107.              The leading dimension of the array W.  LDW >= max(1,N).
  108.  
  109.      INFO    (output) INTEGER
  110.              = 0: successful exit
  111.              > 0: if INFO = k, D(k,k) is exactly zero.  The factorization has
  112.              been completed, but the block diagonal matrix D is exactly
  113.              singular.
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.